import React from 'react'
import type { FormProps } from 'antd';
import { Button, Form, Input, message } from 'antd';
import { useNavigate } from 'react-router-dom';
import { getLogin } from '../../api';

type Props = {}

type FieldType = {
    username?: string;
    password?: string;
    remember?: string;
};

const Login = (props: Props) => {
    const navigate = useNavigate();
    const onFinish: FormProps<FieldType>['onFinish'] = (values) => {
        console.log('Success:', values);
        getLogin(values).then(res => {
            console.log(res);
            if (res.data.code === 200) {
                message.success(res.data.message, 1.2);
                setTimeout(() => {
                    navigate('/home');
                }, 1000);
            } else {
                message.error(res.data.message, 1.2);
            }
        })
    };

    const onFinishFailed: FormProps<FieldType>['onFinishFailed'] = (errorInfo) => {
        console.log('Failed:', errorInfo);
    };
    return (
        <div>
            <Form
                name="basic"
                labelCol={{ span: 8 }}
                wrapperCol={{ span: 16 }}
                style={{ maxWidth: 600 }}
                initialValues={{ remember: true }}
                onFinish={onFinish}
                onFinishFailed={onFinishFailed}
                autoComplete="off"
            >
                <Form.Item<FieldType>
                    label="账号"
                    name="username"
                    rules={[{ required: true, message: '请输入账号!' }]}
                >
                    <Input />
                </Form.Item>

                <Form.Item<FieldType>
                    label="密码"
                    name="password"
                    rules={[{ required: true, message: '请输入密码!' }]}
                >
                    <Input.Password />
                </Form.Item>

                <Form.Item wrapperCol={{ offset: 8, span: 16 }}>
                    <Button type="primary" htmlType="submit">
                        登录
                    </Button>
                </Form.Item>
            </Form>
        </div>
    )
}

export default Login